home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 2 / Macwelt DVD 2.cdr / HTML-Tools / macosx / JChecker X 3.0.2.dmg / JChecker302EX / JChecker3.0 Folder(E) / DTD / XHTML10Strict.dtd < prev    next >
Encoding:
Text File  |  2001-10-14  |  24.7 KB  |  974 lines

  1.  
  2.  
  3. <!--
  4.    Extensible HTML version 1.0 Strict DTD
  5.  
  6.    This is the same as HTML 4 Strict except for
  7.    changes due to the differences between XML and SGML.
  8.  
  9.    Namespace = http://www.w3.org/1999/xhtml
  10.  
  11.    For further information, see: http://www.w3.org/TR/xhtml1
  12.  
  13.    Copyright (c) 1998-2001 W3C (MIT, INRIA, Keio),
  14.    All Rights Reserved. 
  15.  
  16.    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
  17.  
  18.    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  19.    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
  20.  
  21.    $Revision: 1.6 $
  22.    $Date: 2001/10/04 16:51:32 $
  23.  
  24. -->
  25.  
  26. <!--================ Character mnemonic entities =========================-->
  27.  
  28. <!ENTITY % HTMLlat1 PUBLIC
  29.    "-//W3C//ENTITIES Latin 1 for XHTML//EN"
  30.    "xhtml-lat1.ent">
  31. %HTMLlat1;
  32.  
  33. <!ENTITY % HTMLsymbol PUBLIC
  34.    "-//W3C//ENTITIES Symbols for XHTML//EN"
  35.    "xhtml-symbol.ent">
  36. %HTMLsymbol;
  37.  
  38. <!ENTITY % HTMLspecial PUBLIC
  39.    "-//W3C//ENTITIES Special for XHTML//EN"
  40.    "xhtml-special.ent">
  41. %HTMLspecial;
  42.  
  43. <!--================== Imported Names ====================================-->
  44.  
  45. <!ENTITY % ContentType "CDATA">
  46.     <!-- media type, as per [RFC2045] -->
  47.  
  48. <!ENTITY % ContentTypes "CDATA">
  49.     <!-- comma-separated list of media types, as per [RFC2045] -->
  50.  
  51. <!ENTITY % Charset "CDATA">
  52.     <!-- a character encoding, as per [RFC2045] -->
  53.  
  54. <!ENTITY % Charsets "CDATA">
  55.     <!-- a space separated list of character encodings, as per [RFC2045] -->
  56.  
  57. <!ENTITY % LanguageCode "NMTOKEN">
  58.     <!-- a language code, as per [RFC3066] -->
  59.  
  60. <!ENTITY % Character "CDATA">
  61.     <!-- a single character from [ISO10646] -->
  62.  
  63. <!ENTITY % Number "CDATA">
  64.     <!-- one or more digits -->
  65.  
  66. <!ENTITY % LinkTypes "CDATA">
  67.     <!-- space-separated list of link types -->
  68.  
  69. <!ENTITY % MediaDesc "CDATA">
  70.     <!-- single or comma-separated list of media descriptors -->
  71.  
  72. <!ENTITY % URI "CDATA">
  73.     <!-- a Uniform Resource Identifier, see [RFC2396] -->
  74.  
  75. <!ENTITY % UriList "CDATA">
  76.     <!-- a space separated list of Uniform Resource Identifiers -->
  77.  
  78. <!ENTITY % Datetime "CDATA">
  79.     <!-- date and time information. ISO date format -->
  80.  
  81. <!ENTITY % Script "CDATA">
  82.     <!-- script expression -->
  83.  
  84. <!ENTITY % StyleSheet "CDATA">
  85.     <!-- style sheet data -->
  86.  
  87. <!ENTITY % Text "CDATA">
  88.     <!-- used for titles etc. -->
  89.  
  90. <!ENTITY % Length "CDATA">
  91.     <!-- nn for pixels or nn% for percentage length -->
  92.  
  93. <!ENTITY % MultiLength "CDATA">
  94.     <!-- pixel, percentage, or relative -->
  95.  
  96. <!ENTITY % Pixels "CDATA">
  97.     <!-- integer representing length in pixels -->
  98.  
  99. <!-- these are used for image maps -->
  100.  
  101. <!ENTITY % Shape "(rect|circle|poly|default)">
  102.  
  103. <!ENTITY % Coords "CDATA">
  104.     <!-- comma separated list of lengths -->
  105.  
  106. <!--=================== Generic Attributes ===============================-->
  107.  
  108. <!-- core attributes common to most elements
  109.   id       document-wide unique id
  110.   class    space separated list of classes
  111.   style    associated style info
  112.   title    advisory title/amplification
  113. -->
  114. <!ENTITY % coreattrs
  115.  "id          ID             #IMPLIED
  116.   class       CDATA          #IMPLIED
  117.   style       %StyleSheet;   #IMPLIED
  118.   title       %Text;         #IMPLIED"
  119.   >
  120.  
  121. <!-- internationalization attributes
  122.   lang        language code (backwards compatible)
  123.   xml:lang    language code (as per XML 1.0 spec)
  124.   dir         direction for weak/neutral text
  125. -->
  126. <!ENTITY % i18n
  127.  "lang        %LanguageCode; #IMPLIED
  128.   xml:lang    %LanguageCode; #IMPLIED
  129.   dir         (ltr|rtl)      #IMPLIED"
  130.   >
  131.  
  132. <!-- attributes for common UI events
  133.   onclick     a pointer button was clicked
  134.   ondblclick  a pointer button was double clicked
  135.   onmousedown a pointer button was pressed down
  136.   onmouseup   a pointer button was released
  137.   onmousemove a pointer was moved onto the element
  138.   onmouseout  a pointer was moved away from the element
  139.   onkeypress  a key was pressed and released
  140.   onkeydown   a key was pressed down
  141.   onkeyup     a key was released
  142. -->
  143. <!ENTITY % events
  144.  "onclick     %Script;       #IMPLIED
  145.   ondblclick  %Script;       #IMPLIED
  146.   onmousedown %Script;       #IMPLIED
  147.   onmouseup   %Script;       #IMPLIED
  148.   onmouseover %Script;       #IMPLIED
  149.   onmousemove %Script;       #IMPLIED
  150.   onmouseout  %Script;       #IMPLIED
  151.   onkeypress  %Script;       #IMPLIED
  152.   onkeydown   %Script;       #IMPLIED
  153.   onkeyup     %Script;       #IMPLIED"
  154.   >
  155.  
  156. <!-- attributes for elements that can get the focus
  157.   accesskey   accessibility key character
  158.   tabindex    position in tabbing order
  159.   onfocus     the element got the focus
  160.   onblur      the element lost the focus
  161. -->
  162. <!ENTITY % focus
  163.  "accesskey   %Character;    #IMPLIED
  164.   tabindex    %Number;       #IMPLIED
  165.   onfocus     %Script;       #IMPLIED
  166.   onblur      %Script;       #IMPLIED"
  167.   >
  168.  
  169. <!ENTITY % attrs "%coreattrs; %i18n; %events;">
  170.  
  171. <!--=================== Text Elements ====================================-->
  172.  
  173. <!ENTITY % special
  174.    "br | span | bdo | object | img | map">
  175.  
  176. <!ENTITY % fontstyle "tt | i | b | big | small">
  177.  
  178. <!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
  179.                    samp | kbd | var | cite | abbr | acronym">
  180.  
  181. <!ENTITY % inline.forms "input | select | textarea | label | button">
  182.  
  183. <!-- these can occur at block or inline level -->
  184. <!ENTITY % misc "ins | del | script | noscript">
  185.  
  186. <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
  187.  
  188. <!-- %Inline; covers inline or "text-level" elements -->
  189. <!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">
  190.  
  191. <!--================== Block level elements ==============================-->
  192.  
  193. <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
  194. <!ENTITY % lists "ul | ol | dl">
  195. <!ENTITY % blocktext "pre | hr | blockquote | address">
  196.  
  197. <!ENTITY % block
  198.      "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
  199.  
  200. <!ENTITY % Block "(%block; | form | %misc;)*">
  201.  
  202. <!-- %Flow; mixes Block and Inline and is used for list items etc. -->
  203. <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
  204.  
  205. <!--================== Content models for exclusions =====================-->
  206.  
  207. <!-- a elements use %Inline; excluding a -->
  208.  
  209. <!ENTITY % a.content
  210.    "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">
  211.  
  212. <!-- pre uses %Inline excluding img, object, big, small, sup or sup -->
  213.  
  214. <!ENTITY % pre.content
  215.    "(#PCDATA | a | br | span | bdo | map | tt | i | b |
  216.       %phrase; | %inline.forms;)*">
  217.  
  218. <!-- form uses %Block; excluding form -->
  219.  
  220. <!ENTITY % form.content "(%block; | %misc;)*">
  221.  
  222. <!-- button uses %Flow; but excludes a, form and form controls -->
  223.  
  224. <!ENTITY % button.content
  225.    "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
  226.     table | %special; | %fontstyle; | %phrase; | %misc;)*">
  227.  
  228. <!--================ Document Structure ==================================-->
  229.  
  230. <!-- the namespace URI designates the document profile -->
  231.  
  232. <!ELEMENT html (head, body)>
  233. <!ATTLIST html
  234.   %i18n;
  235.   id          ID             #IMPLIED
  236.   xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
  237.   >
  238.  
  239. <!--================ Document Head =======================================-->
  240.  
  241. <!ENTITY % head.misc "(script|style|meta|link|object)*">
  242.  
  243. <!-- content model is %head.misc; combined with a single
  244.      title and an optional base element in any order -->
  245.  
  246. <!ELEMENT head (%head.misc;,
  247.      ((title, %head.misc;, (base, %head.misc;)?) |
  248.       (base, %head.misc;, (title, %head.misc;))))>
  249.  
  250. <!ATTLIST head
  251.   %i18n;
  252.   id          ID             #IMPLIED
  253.   profile     %URI;          #IMPLIED
  254.   >
  255.  
  256. <!-- The title element is not considered part of the flow of text.
  257.        It should be displayed, for example as the page header or
  258.        window title. Exactly one title is required per document.
  259.     -->
  260. <!ELEMENT title (#PCDATA)>
  261. <!ATTLIST title 
  262.   %i18n;
  263.   id          ID             #IMPLIED
  264.   >
  265.  
  266. <!-- document base URI -->
  267.  
  268. <!ELEMENT base EMPTY>
  269. <!ATTLIST base
  270.   href        %URI;          #IMPLIED
  271.   id          ID             #IMPLIED
  272.   >
  273.  
  274. <!-- generic metainformation -->
  275. <!ELEMENT meta EMPTY>
  276. <!ATTLIST meta
  277.   %i18n;
  278.   id          ID             #IMPLIED
  279.   http-equiv  CDATA          #IMPLIED
  280.   name        CDATA          #IMPLIED
  281.   content     CDATA          #REQUIRED
  282.   scheme      CDATA          #IMPLIED
  283.   >
  284.  
  285. <!--
  286.   Relationship values can be used in principle:
  287.  
  288.    a) for document specific toolbars/menus when used
  289.       with the link element in document head e.g.
  290.         start, contents, previous, next, index, end, help
  291.    b) to link to a separate style sheet (rel="stylesheet")
  292.    c) to make a link to a script (rel="script")
  293.    d) by stylesheets to control how collections of
  294.       html nodes are rendered into printed documents
  295.    e) to make a link to a printable version of this document
  296.       e.g. a PostScript or PDF version (rel="alternate" media="print")
  297. -->
  298.  
  299. <!ELEMENT link EMPTY>
  300. <!ATTLIST link
  301.   %attrs;
  302.   charset     %Charset;      #IMPLIED
  303.   href        %URI;          #IMPLIED
  304.   hreflang    %LanguageCode; #IMPLIED
  305.   type        %ContentType;  #IMPLIED
  306.   rel         %LinkTypes;    #IMPLIED
  307.   rev         %LinkTypes;    #IMPLIED
  308.   media       %MediaDesc;    #IMPLIED
  309.   >
  310.  
  311. <!-- style info, which may include CDATA sections -->
  312. <!ELEMENT style (#PCDATA)>
  313. <!ATTLIST style
  314.   %i18n;
  315.   id          ID             #IMPLIED
  316.   type        %ContentType;  #REQUIRED
  317.   media       %MediaDesc;    #IMPLIED
  318.   title       %Text;         #IMPLIED
  319.   xml:space   (preserve)     #FIXED 'preserve'
  320.   >
  321.  
  322. <!-- script statements, which may include CDATA sections -->
  323. <!ELEMENT script (#PCDATA)>
  324. <!ATTLIST script
  325.   id          ID             #IMPLIED
  326.   charset     %Charset;      #IMPLIED
  327.   type        %ContentType;  #REQUIRED
  328.   src         %URI;          #IMPLIED
  329.   defer       (defer)        #IMPLIED
  330.   xml:space   (preserve)     #FIXED 'preserve'
  331.   >
  332.  
  333. <!-- alternate content container for non script-based rendering -->
  334.  
  335. <!ELEMENT noscript %Block;>
  336. <!ATTLIST noscript
  337.   %attrs;
  338.   >
  339.  
  340. <!--=================== Document Body ====================================-->
  341.  
  342. <!ELEMENT body %Block;>
  343. <!ATTLIST body
  344.   %attrs;
  345.   onload          %Script;   #IMPLIED
  346.   onunload        %Script;   #IMPLIED
  347.   >
  348.  
  349. <!ELEMENT div %Flow;>  <!-- generic language/style container -->
  350. <!ATTLIST div
  351.   %attrs;
  352.   >
  353.  
  354. <!--=================== Paragraphs =======================================-->
  355.  
  356. <!ELEMENT p %Inline;>
  357. <!ATTLIST p
  358.   %attrs;
  359.   >
  360.  
  361. <!--=================== Headings =========================================-->
  362.  
  363. <!--
  364.   There are six levels of headings from h1 (the most important)
  365.   to h6 (the least important).
  366. -->
  367.  
  368. <!ELEMENT h1  %Inline;>
  369. <!ATTLIST h1
  370.    %attrs;
  371.    >
  372.  
  373. <!ELEMENT h2 %Inline;>
  374. <!ATTLIST h2
  375.    %attrs;
  376.    >
  377.  
  378. <!ELEMENT h3 %Inline;>
  379. <!ATTLIST h3
  380.    %attrs;
  381.    >
  382.  
  383. <!ELEMENT h4 %Inline;>
  384. <!ATTLIST h4
  385.    %attrs;
  386.    >
  387.  
  388. <!ELEMENT h5 %Inline;>
  389. <!ATTLIST h5
  390.    %attrs;
  391.    >
  392.  
  393. <!ELEMENT h6 %Inline;>
  394. <!ATTLIST h6
  395.    %attrs;
  396.    >
  397.  
  398. <!--=================== Lists ============================================-->
  399.  
  400. <!-- Unordered list -->
  401.  
  402. <!ELEMENT ul (li)+>
  403. <!ATTLIST ul
  404.   %attrs;
  405.   >
  406.  
  407. <!-- Ordered (numbered) list -->
  408.  
  409. <!ELEMENT ol (li)+>
  410. <!ATTLIST ol
  411.   %attrs;
  412.   >
  413.  
  414. <!-- list item -->
  415.  
  416. <!ELEMENT li %Flow;>
  417. <!ATTLIST li
  418.   %attrs;
  419.   >
  420.  
  421. <!-- definition lists - dt for term, dd for its definition -->
  422.  
  423. <!ELEMENT dl (dt|dd)+>
  424. <!ATTLIST dl
  425.   %attrs;
  426.   >
  427.  
  428. <!ELEMENT dt %Inline;>
  429. <!ATTLIST dt
  430.   %attrs;
  431.   >
  432.  
  433. <!ELEMENT dd %Flow;>
  434. <!ATTLIST dd
  435.   %attrs;
  436.   >
  437.  
  438. <!--=================== Address ==========================================-->
  439.  
  440. <!-- information on author -->
  441.  
  442. <!ELEMENT address %Inline;>
  443. <!ATTLIST address
  444.   %attrs;
  445.   >
  446.  
  447. <!--=================== Horizontal Rule ==================================-->
  448.  
  449. <!ELEMENT hr EMPTY>
  450. <!ATTLIST hr
  451.   %attrs;
  452.   >
  453.  
  454. <!--=================== Preformatted Text ================================-->
  455.  
  456. <!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
  457.  
  458. <!ELEMENT pre %pre.content;>
  459. <!ATTLIST pre
  460.   %attrs;
  461.   xml:space (preserve) #FIXED 'preserve'
  462.   >
  463.  
  464. <!--=================== Block-like Quotes ================================-->
  465.  
  466. <!ELEMENT blockquote %Block;>
  467. <!ATTLIST blockquote
  468.   %attrs;
  469.   cite        %URI;          #IMPLIED
  470.   >
  471.  
  472. <!--=================== Inserted/Deleted Text ============================-->
  473.  
  474. <!--
  475.   ins/del are allowed in block and inline content, but its
  476.   inappropriate to include block content within an ins element
  477.   occurring in inline content.
  478. -->
  479. <!ELEMENT ins %Flow;>
  480. <!ATTLIST ins
  481.   %attrs;
  482.   cite        %URI;          #IMPLIED
  483.   datetime    %Datetime;     #IMPLIED
  484.   >
  485.  
  486. <!ELEMENT del %Flow;>
  487. <!ATTLIST del
  488.   %attrs;
  489.   cite        %URI;          #IMPLIED
  490.   datetime    %Datetime;     #IMPLIED
  491.   >
  492.  
  493. <!--================== The Anchor Element ================================-->
  494.  
  495. <!-- content is %Inline; except that anchors shouldn't be nested -->
  496.  
  497. <!ELEMENT a %a.content;>
  498. <!ATTLIST a
  499.   %attrs;
  500.   %focus;
  501.   charset     %Charset;      #IMPLIED
  502.   type        %ContentType;  #IMPLIED
  503.   name        NMTOKEN        #IMPLIED
  504.   href        %URI;          #IMPLIED
  505.   hreflang    %LanguageCode; #IMPLIED
  506.   rel         %LinkTypes;    #IMPLIED
  507.   rev         %LinkTypes;    #IMPLIED
  508.   shape       %Shape;        "rect"
  509.   coords      %Coords;       #IMPLIED
  510.   >
  511.  
  512. <!--===================== Inline Elements ================================-->
  513.  
  514. <!ELEMENT span %Inline;> <!-- generic language/style container -->
  515. <!ATTLIST span
  516.   %attrs;
  517.   >
  518.  
  519. <!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
  520. <!ATTLIST bdo
  521.   %coreattrs;
  522.   %events;
  523.   lang        %LanguageCode; #IMPLIED
  524.   xml:lang    %LanguageCode; #IMPLIED
  525.   dir         (ltr|rtl)      #REQUIRED
  526.   >
  527.  
  528. <!ELEMENT br EMPTY>   <!-- forced line break -->
  529. <!ATTLIST br
  530.   %coreattrs;
  531.   >
  532.  
  533. <!ELEMENT em %Inline;>   <!-- emphasis -->
  534. <!ATTLIST em %attrs;>
  535.  
  536. <!ELEMENT strong %Inline;>   <!-- strong emphasis -->
  537. <!ATTLIST strong %attrs;>
  538.  
  539. <!ELEMENT dfn %Inline;>   <!-- definitional -->
  540. <!ATTLIST dfn %attrs;>
  541.  
  542. <!ELEMENT code %Inline;>   <!-- program code -->
  543. <!ATTLIST code %attrs;>
  544.  
  545. <!ELEMENT samp %Inline;>   <!-- sample -->
  546. <!ATTLIST samp %attrs;>
  547.  
  548. <!ELEMENT kbd %Inline;>  <!-- something user would type -->
  549. <!ATTLIST kbd %attrs;>
  550.  
  551. <!ELEMENT var %Inline;>   <!-- variable -->
  552. <!ATTLIST var %attrs;>
  553.  
  554. <!ELEMENT cite %Inline;>   <!-- citation -->
  555. <!ATTLIST cite %attrs;>
  556.  
  557. <!ELEMENT abbr %Inline;>   <!-- abbreviation -->
  558. <!ATTLIST abbr %attrs;>
  559.  
  560. <!ELEMENT acronym %Inline;>   <!-- acronym -->
  561. <!ATTLIST acronym %attrs;>
  562.  
  563. <!ELEMENT q %Inline;>   <!-- inlined quote -->
  564. <!ATTLIST q
  565.   %attrs;
  566.   cite        %URI;          #IMPLIED
  567.   >
  568.  
  569. <!ELEMENT sub %Inline;> <!-- subscript -->
  570. <!ATTLIST sub %attrs;>
  571.  
  572. <!ELEMENT sup %Inline;> <!-- superscript -->
  573. <!ATTLIST sup %attrs;>
  574.  
  575. <!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
  576. <!ATTLIST tt %attrs;>
  577.  
  578. <!ELEMENT i %Inline;>   <!-- italic font -->
  579. <!ATTLIST i %attrs;>
  580.  
  581. <!ELEMENT b %Inline;>   <!-- bold font -->
  582. <!ATTLIST b %attrs;>
  583.  
  584. <!ELEMENT big %Inline;>   <!-- bigger font -->
  585. <!ATTLIST big %attrs;>
  586.  
  587. <!ELEMENT small %Inline;>   <!-- smaller font -->
  588. <!ATTLIST small %attrs;>
  589.  
  590. <!--==================== Object ======================================-->
  591. <!--
  592.   object is used to embed objects as part of HTML pages.
  593.   param elements should precede other content. Parameters
  594.   can also be expressed as attribute/value pairs on the
  595.   object element itself when brevity is desired.
  596. -->
  597.  
  598. <!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
  599. <!ATTLIST object
  600.   %attrs;
  601.   declare     (declare)      #IMPLIED
  602.   classid     %URI;          #IMPLIED
  603.   codebase    %URI;          #IMPLIED
  604.   data        %URI;          #IMPLIED
  605.   type        %ContentType;  #IMPLIED
  606.   codetype    %ContentType;  #IMPLIED
  607.   archive     %UriList;      #IMPLIED
  608.   standby     %Text;         #IMPLIED
  609.   height      %Length;       #IMPLIED
  610.   width       %Length;       #IMPLIED
  611.   usemap      %URI;          #IMPLIED
  612.   name        NMTOKEN        #IMPLIED
  613.   tabindex    %Number;       #IMPLIED
  614.   >
  615.  
  616. <!--
  617.   param is used to supply a named property value.
  618.   In XML it would seem natural to follow RDF and support an
  619.   abbreviated syntax where the param elements are replaced
  620.   by attribute value pairs on the object start tag.
  621. -->
  622. <!ELEMENT param EMPTY>
  623. <!ATTLIST param
  624.   id          ID             #IMPLIED
  625.   name        CDATA          #IMPLIED
  626.   value       CDATA          #IMPLIED
  627.   valuetype   (data|ref|object) "data"
  628.   type        %ContentType;  #IMPLIED
  629.   >
  630.  
  631. <!--=================== Images ===========================================-->
  632.  
  633. <!--
  634.    To avoid accessibility problems for people who aren't
  635.    able to see the image, you should provide a text
  636.    description using the alt and longdesc attributes.
  637.    In addition, avoid the use of server-side image maps.
  638.    Note that in this DTD there is no name attribute. That
  639.    is only available in the transitional and frameset DTD.
  640. -->
  641.  
  642. <!ELEMENT img EMPTY>
  643. <!ATTLIST img
  644.   %attrs;
  645.   src         %URI;          #REQUIRED
  646.   alt         %Text;         #REQUIRED
  647.   longdesc    %URI;          #IMPLIED
  648.   height      %Length;       #IMPLIED
  649.   width       %Length;       #IMPLIED
  650.   usemap      %URI;          #IMPLIED
  651.   ismap       (ismap)        #IMPLIED
  652.   >
  653.  
  654. <!-- usemap points to a map element which may be in this document
  655.   or an external document, although the latter is not widely supported -->
  656.  
  657. <!--================== Client-side image maps ============================-->
  658.  
  659. <!-- These can be placed in the same document or grouped in a
  660.      separate document although this isn't yet widely supported -->
  661.  
  662. <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
  663. <!ATTLIST map
  664.   %i18n;
  665.   %events;
  666.   id          ID             #REQUIRED
  667.   class       CDATA          #IMPLIED
  668.   style       %StyleSheet;   #IMPLIED
  669.   title       %Text;         #IMPLIED
  670.   name        NMTOKEN        #IMPLIED
  671.   >
  672.  
  673. <!ELEMENT area EMPTY>
  674. <!ATTLIST area
  675.   %attrs;
  676.   %focus;
  677.   shape       %Shape;        "rect"
  678.   coords      %Coords;       #IMPLIED
  679.   href        %URI;          #IMPLIED
  680.   nohref      (nohref)       #IMPLIED
  681.   alt         %Text;         #REQUIRED
  682.   >
  683.  
  684. <!--================ Forms ===============================================-->
  685. <!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
  686.  
  687. <!ATTLIST form
  688.   %attrs;
  689.   action      %URI;          #REQUIRED
  690.   method      (get|post)     "get"
  691.   enctype     %ContentType;  "application/x-www-form-urlencoded"
  692.   onsubmit    %Script;       #IMPLIED
  693.   onreset     %Script;       #IMPLIED
  694.   accept      %ContentTypes; #IMPLIED
  695.   accept-charset %Charsets;  #IMPLIED
  696.   >
  697.  
  698. <!--
  699.   Each label must not contain more than ONE field
  700.   Label elements shouldn't be nested.
  701. -->
  702. <!ELEMENT label %Inline;>
  703. <!ATTLIST label
  704.   %attrs;
  705.   for         IDREF          #IMPLIED
  706.   accesskey   %Character;    #IMPLIED
  707.   onfocus     %Script;       #IMPLIED
  708.   onblur      %Script;       #IMPLIED
  709.   >
  710.  
  711. <!ENTITY % InputType
  712.   "(text | password | checkbox |
  713.     radio | submit | reset |
  714.     file | hidden | image | button)"
  715.    >
  716.  
  717. <!-- the name attribute is required for all but submit & reset -->
  718.  
  719. <!ELEMENT input EMPTY>     <!-- form control -->
  720. <!ATTLIST input
  721.   %attrs;
  722.   %focus;
  723.   type        %InputType;    "text"
  724.   name        CDATA          #IMPLIED
  725.   value       CDATA          #IMPLIED
  726.   checked     (checked)      #IMPLIED
  727.   disabled    (disabled)     #IMPLIED
  728.   readonly    (readonly)     #IMPLIED
  729.   size        CDATA          #IMPLIED
  730.   maxlength   %Number;       #IMPLIED
  731.   src         %URI;          #IMPLIED
  732.   alt         CDATA          #IMPLIED
  733.   usemap      %URI;          #IMPLIED
  734.   onselect    %Script;       #IMPLIED
  735.   onchange    %Script;       #IMPLIED
  736.   accept      %ContentTypes; #IMPLIED
  737.   >
  738.  
  739. <!ELEMENT select (optgroup|option)+>  <!-- option selector -->
  740. <!ATTLIST select
  741.   %attrs;
  742.   name        CDATA          #IMPLIED
  743.   size        %Number;       #IMPLIED
  744.   multiple    (multiple)     #IMPLIED
  745.   disabled    (disabled)     #IMPLIED
  746.   tabindex    %Number;       #IMPLIED
  747.   onfocus     %Script;       #IMPLIED
  748.   onblur      %Script;       #IMPLIED
  749.   onchange    %Script;       #IMPLIED
  750.   >
  751.  
  752. <!ELEMENT optgroup (option)+>   <!-- option group -->
  753. <!ATTLIST optgroup
  754.   %attrs;
  755.   disabled    (disabled)     #IMPLIED
  756.   label       %Text;         #REQUIRED
  757.   >
  758.  
  759. <!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
  760. <!ATTLIST option
  761.   %attrs;
  762.   selected    (selected)     #IMPLIED
  763.   disabled    (disabled)     #IMPLIED
  764.   label       %Text;         #IMPLIED
  765.   value       CDATA          #IMPLIED
  766.   >
  767.  
  768. <!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
  769. <!ATTLIST textarea
  770.   %attrs;
  771.   %focus;
  772.   name        CDATA          #IMPLIED
  773.   rows        %Number;       #REQUIRED
  774.   cols        %Number;       #REQUIRED
  775.   disabled    (disabled)     #IMPLIED
  776.   readonly    (readonly)     #IMPLIED
  777.   onselect    %Script;       #IMPLIED
  778.   onchange    %Script;       #IMPLIED
  779.   >
  780.  
  781. <!--
  782.   The fieldset element is used to group form fields.
  783.   Only one legend element should occur in the content
  784.   and if present should only be preceded by whitespace.
  785. -->
  786. <!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
  787. <!ATTLIST fieldset
  788.   %attrs;
  789.   >
  790.  
  791. <!ELEMENT legend %Inline;>     <!-- fieldset label -->
  792. <!ATTLIST legend
  793.   %attrs;
  794.   accesskey   %Character;    #IMPLIED
  795.   >
  796.  
  797. <!--
  798.  Content is %Flow; excluding a, form and form controls
  799. --> 
  800. <!ELEMENT button %button.content;>  <!-- push button -->
  801. <!ATTLIST button
  802.   %attrs;
  803.   %focus;
  804.   name        CDATA          #IMPLIED
  805.   value       CDATA          #IMPLIED
  806.   type        (button|submit|reset) "submit"
  807.   disabled    (disabled)     #IMPLIED
  808.   >
  809.  
  810. <!--======================= Tables =======================================-->
  811.  
  812. <!-- Derived from IETF HTML table standard, see [RFC1942] -->
  813.  
  814. <!--
  815.  The border attribute sets the thickness of the frame around the
  816.  table. The default units are screen pixels.
  817.  
  818.  The frame attribute specifies which parts of the frame around
  819.  the table should be rendered. The values are not the same as
  820.  CALS to avoid a name clash with the valign attribute.
  821. -->
  822. <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
  823.  
  824. <!--
  825.  The rules attribute defines which rules to draw between cells:
  826.  
  827.  If rules is absent then assume:
  828.      "none" if border is absent or border="0" otherwise "all"
  829. -->
  830.  
  831. <!ENTITY % TRules "(none | groups | rows | cols | all)">
  832.   
  833. <!-- horizontal alignment attributes for cell contents
  834.  
  835.   char        alignment char, e.g. char=':'
  836.   charoff     offset for alignment char
  837. -->
  838. <!ENTITY % cellhalign
  839.   "align      (left|center|right|justify|char) #IMPLIED
  840.    char       %Character;    #IMPLIED
  841.    charoff    %Length;       #IMPLIED"
  842.   >
  843.  
  844. <!-- vertical alignment attributes for cell contents -->
  845. <!ENTITY % cellvalign
  846.   "valign     (top|middle|bottom|baseline) #IMPLIED"
  847.   >
  848.  
  849. <!ELEMENT table
  850.      (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
  851. <!ELEMENT caption  %Inline;>
  852. <!ELEMENT thead    (tr)+>
  853. <!ELEMENT tfoot    (tr)+>
  854. <!ELEMENT tbody    (tr)+>
  855. <!ELEMENT colgroup (col)*>
  856. <!ELEMENT col      EMPTY>
  857. <!ELEMENT tr       (th|td)+>
  858. <!ELEMENT th       %Flow;>
  859. <!ELEMENT td       %Flow;>
  860.  
  861. <!ATTLIST table
  862.   %attrs;
  863.   summary     %Text;         #IMPLIED
  864.   width       %Length;       #IMPLIED
  865.   border      %Pixels;       #IMPLIED
  866.   frame       %TFrame;       #IMPLIED
  867.   rules       %TRules;       #IMPLIED
  868.   cellspacing %Length;       #IMPLIED
  869.   cellpadding %Length;       #IMPLIED
  870.   >
  871.  
  872. <!ATTLIST caption
  873.   %attrs;
  874.   >
  875.  
  876. <!--
  877. colgroup groups a set of col elements. It allows you to group
  878. several semantically related columns together.
  879. -->
  880. <!ATTLIST colgroup
  881.   %attrs;
  882.   span        %Number;       "1"
  883.   width       %MultiLength;  #IMPLIED
  884.   %cellhalign;
  885.   %cellvalign;
  886.   >
  887.  
  888. <!--
  889.  col elements define the alignment properties for cells in
  890.  one or more columns.
  891.  
  892.  The width attribute specifies the width of the columns, e.g.
  893.  
  894.      width=64        width in screen pixels
  895.      width=0.5*      relative width of 0.5
  896.  
  897.  The span attribute causes the attributes of one
  898.  col element to apply to more than one column.
  899. -->
  900. <!ATTLIST col
  901.   %attrs;
  902.   span        %Number;       "1"
  903.   width       %MultiLength;  #IMPLIED
  904.   %cellhalign;
  905.   %cellvalign;
  906.   >
  907.  
  908. <!--
  909.     Use thead to duplicate headers when breaking table
  910.     across page boundaries, or for static headers when
  911.     tbody sections are rendered in scrolling panel.
  912.  
  913.     Use tfoot to duplicate footers when breaking table
  914.     across page boundaries, or for static footers when
  915.     tbody sections are rendered in scrolling panel.
  916.  
  917.     Use multiple tbody sections when rules are needed
  918.     between groups of table rows.
  919. -->
  920. <!ATTLIST thead
  921.   %attrs;
  922.   %cellhalign;
  923.   %cellvalign;
  924.   >
  925.  
  926. <!ATTLIST tfoot
  927.   %attrs;
  928.   %cellhalign;
  929.   %cellvalign;
  930.   >
  931.  
  932. <!ATTLIST tbody
  933.   %attrs;
  934.   %cellhalign;
  935.   %cellvalign;
  936.   >
  937.  
  938. <!ATTLIST tr
  939.   %attrs;
  940.   %cellhalign;
  941.   %cellvalign;
  942.   >
  943.  
  944.  
  945. <!-- Scope is simpler than headers attribute for common tables -->
  946. <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
  947.  
  948. <!-- th is for headers, td for data and for cells acting as both -->
  949.  
  950. <!ATTLIST th
  951.   %attrs;
  952.   abbr        %Text;         #IMPLIED
  953.   axis        CDATA          #IMPLIED
  954.   headers     IDREFS         #IMPLIED
  955.   scope       %Scope;        #IMPLIED
  956.   rowspan     %Number;       "1"
  957.   colspan     %Number;       "1"
  958.   %cellhalign;
  959.   %cellvalign;
  960.   >
  961.  
  962. <!ATTLIST td
  963.   %attrs;
  964.   abbr        %Text;         #IMPLIED
  965.   axis        CDATA          #IMPLIED
  966.   headers     IDREFS         #IMPLIED
  967.   scope       %Scope;        #IMPLIED
  968.   rowspan     %Number;       "1"
  969.   colspan     %Number;       "1"
  970.   %cellhalign;
  971.   %cellvalign;
  972.   >
  973.  
  974.